import { IPSModelSortable } from '../../ipsmodel-sortable';
import { IPSApplicationObject } from '../ipsapplication-object';
import { IPSLanguageRes } from '../../res/ipslanguage-res';
import { IPSSysCss } from '../../res/ipssys-css';
import { IPSSysImage } from '../../res/ipssys-image';
import { IPSSysPortletCat } from '../../res/ipssys-portlet-cat';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSAppPortletCat
 */
export interface IPSAppPortletCat extends IPSSysPortletCat, IPSApplicationObject, IPSModelSortable {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 名称语言资源
   *
   * @type {IPSLanguageRes}
   */
  getNamePSLanguageRes(): IPSLanguageRes | null;

  /**
   * 名称语言资源
   *
   * @type {IPSLanguageRes}
   */
  get namePSLanguageRes(): IPSLanguageRes | null;

  /**
   * 名称语言资源（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getNamePSLanguageResMust(): IPSLanguageRes;

  /**
   * 系统界面样式表
   *
   * @type {IPSSysCss}
   */
  getPSSysCss(): IPSSysCss | null;

  /**
   * 系统界面样式表
   *
   * @type {IPSSysCss}
   */
  get psSysCss(): IPSSysCss | null;

  /**
   * 系统界面样式表（必须存在）
   *
   * @type {IPSSysCss}
   */
  getPSSysCssMust(): IPSSysCss;

  /**
   * 系统图片
   *
   * @type {IPSSysImage}
   */
  getPSSysImage(): IPSSysImage | null;

  /**
   * 系统图片
   *
   * @type {IPSSysImage}
   */
  get psSysImage(): IPSSysImage | null;

  /**
   * 系统图片（必须存在）
   *
   * @type {IPSSysImage}
   */
  getPSSysImageMust(): IPSSysImage;

  /**
   * 未分组分类
   * @type {boolean}
   */
  ungroup: boolean;
}
